MySQL-এ টেবিল তৈরি করতে হলে CREATE TABLE কমান্ড ব্যবহার করতে হয়। একটি টেবিলের মধ্যে বিভিন্ন ধরনের ডেটা সংরক্ষিত হয়, এবং প্রতিটি কলামের জন্য একটি নির্দিষ্ট ডেটা টাইপ নির্ধারণ করতে হয়। নিচে CREATE TABLE কমান্ডের মাধ্যমে টেবিল তৈরি এবং বিভিন্ন ডেটা টাইপ সম্পর্কে বিস্তারিত আলোচনা করা হয়েছে।
1. CREATE TABLE কমান্ড
CREATE TABLE কমান্ডের মাধ্যমে MySQL-এ টেবিল তৈরি করা হয়। এর মূল সিনট্যাক্স নিম্নরূপ:
CREATE TABLE table_name (
column1 datatype,
column2 datatype,
column3 datatype,
...
);
উদাহরণ:
ধরা যাক, আমরা একটি students নামে টেবিল তৈরি করতে চাই, যেখানে ছাত্রদের নাম, বয়স, গ্রেড এবং ভর্তি তারিখ থাকবে। আমরা এই টেবিলটি নিম্নরূপ তৈরি করতে পারিঃ
CREATE TABLE students (
student_id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(100),
age INT,
grade CHAR(1),
enrollment_date DATE
);
এখানে:
student_id: INT টাইপের একটি কলাম, যা সঠিক পূর্ণসংখ্যা ধারণ করবে। AUTO_INCREMENT ব্যবহার করা হয়েছে যাতে প্রতিটি নতুন ছাত্রের জন্য একটি স্বয়ংক্রিয় মান তৈরি হয় এবং PRIMARY KEY দিয়ে এটিকে একটি ইউনিক কলাম হিসেবে চিহ্নিত করা হয়েছে।name: VARCHAR(100), যা 100 ক্যারেক্টার পর্যন্ত অক্ষর ধারণ করতে পারে।age: INT টাইপ, যা বয়সের পূর্ণসংখ্যা ধারণ করবে।grade: CHAR(1), যা 1 ক্যারেক্টারের একটি স্ট্রিং ধারণ করবে (যেমন 'A', 'B', 'C' ইত্যাদি)।enrollment_date: DATE টাইপ, যা একটি নির্দিষ্ট তারিখ ধারণ করবে।
2. MySQL ডেটা টাইপ
MySQL বিভিন্ন ধরনের ডেটা টাইপ প্রদান করে যা টেবিলের কলামগুলোতে ডেটা সংরক্ষণের জন্য ব্যবহার করা হয়। ডেটা টাইপগুলো প্রধানত দুইটি শ্রেণিতে ভাগ করা যায়: সংখ্যা ডেটা টাইপ এবং স্ট্রিং ডেটা টাইপ।
সংখ্যা ডেটা টাইপ (Numeric Data Types)
- INT: পূর্ণসংখ্যা (Integer) ধারণ করে। সাধারণত ছোট বা বড় সংখ্যার জন্য ব্যবহৃত হয়।
- উদাহরণ:
age INT
- উদাহরণ:
- DECIMAL(M, D): দশমিক সংখ্যা ধারণ করে, যেখানে M হলো মোট সংখ্যা এবং D হলো দশমিক স্থান সংখ্যা।
- উদাহরণ:
salary DECIMAL(10, 2)(এখানে 10টি সংখ্যা, তার মধ্যে 2টি দশমিকের পরে)
- উদাহরণ:
- FLOAT: ফ্লোটিং পয়েন্ট সংখ্যা, যা ছোট আকারের দশমিক সংখ্যার জন্য ব্যবহার করা হয়।
- উদাহরণ:
height FLOAT
- উদাহরণ:
- DOUBLE: ফ্লোটিং পয়েন্ট সংখ্যার তুলনায় আরও বড় মান ধারণ করার জন্য ব্যবহৃত হয়।
- উদাহরণ:
weight DOUBLE
- উদাহরণ:
- TINYINT: ছোট পূর্ণসংখ্যা ( -128 থেকে 127 পর্যন্ত) ধারণ করে।
- উদাহরণ:
is_active TINYINT
- উদাহরণ:
- BIGINT: বড় পূর্ণসংখ্যা (-9223372036854775808 থেকে 9223372036854775807 পর্যন্ত) ধারণ করে।
- উদাহরণ:
transaction_id BIGINT
- উদাহরণ:
স্ট্রিং ডেটা টাইপ (String Data Types)
- VARCHAR(N): একটি ভ্যারিয়েবল-লেংথ স্ট্রিং যা N সংখ্যা পর্যন্ত অক্ষর ধারণ করতে পারে।
- উদাহরণ:
name VARCHAR(100)
- উদাহরণ:
- CHAR(N): একটি স্থির-লেংথ স্ট্রিং যা নির্দিষ্ট N সংখ্যা পর্যন্ত অক্ষর ধারণ করে।
- উদাহরণ:
grade CHAR(1)
- উদাহরণ:
- TEXT: বড় আকারের টেক্সট ডেটা ধারণ করার জন্য ব্যবহৃত হয়।
- উদাহরণ:
description TEXT
- উদাহরণ:
- LONGTEXT: আরও বড় আকারের টেক্সট ডেটা ধারণ করে।
- উদাহরণ:
notes LONGTEXT
- উদাহরণ:
- BLOB: বাইনারি ডেটা ধারণ করার জন্য ব্যবহৃত হয়।
- উদাহরণ:
profile_picture BLOB
- উদাহরণ:
তারিখ ও সময় ডেটা টাইপ (Date and Time Data Types)
- DATE: তারিখ (YYYY-MM-DD) ধারণ করে।
- উদাহরণ:
birth_date DATE
- উদাহরণ:
- TIME: সময় (HH:MM:SS) ধারণ করে।
- উদাহরণ:
start_time TIME
- উদাহরণ:
- DATETIME: তারিখ ও সময় (YYYY-MM-DD HH:MM:SS) ধারণ করে।
- উদাহরণ:
created_at DATETIME
- উদাহরণ:
- TIMESTAMP: সময়ের সাথে সম্পর্কিত তারিখ ও সময় ধারণ করে এবং এটি টেবিলের রেকর্ড তৈরির সময়টি ট্র্যাক করে।
- উদাহরণ:
updated_at TIMESTAMP
- উদাহরণ:
- YEAR: একটি বছর ধারণ করে (প্রথম থেকে 4 অঙ্কের বছর)।
- উদাহরণ:
joining_year YEAR
- উদাহরণ:
3. উদাহরণ: MySQL-এ টেবিল তৈরি ও ডেটা টাইপ ব্যবহার
এখন, আসুন একটি উদাহরণ দেখি যেখানে আমরা ছাত্রদের তথ্য সংরক্ষণ করার জন্য একটি টেবিল তৈরি করব এবং বিভিন্ন ডেটা টাইপ ব্যবহার করব:
CREATE TABLE students (
student_id INT AUTO_INCREMENT PRIMARY KEY,
first_name VARCHAR(50),
last_name VARCHAR(50),
birth_date DATE,
age INT,
grade CHAR(1),
height DECIMAL(5,2),
email VARCHAR(100),
is_active TINYINT(1) DEFAULT 1,
enrolled_on DATETIME
);
এখানে:
student_id: INT টাইপ, এটি স্বয়ংক্রিয়ভাবে বাড়ানো হবে এবং PRIMARY KEY হিসেবে ব্যবহৃত হবে।first_name,last_name: VARCHAR(50), যার মানে ৫০ অক্ষরের পর্যন্ত স্ট্রিং।birth_date: DATE টাইপ, যেটি ছাত্রের জন্মতারিখ সংরক্ষণ করবে।age: INT টাইপ, ছাত্রের বয়স।grade: CHAR(1), ছাত্রের গ্রেড।height: DECIMAL(5,2), ছাত্রের উচ্চতা।email: VARCHAR(100), ছাত্রের ইমেইল।is_active: TINYINT(1), এটি ১ বা ০ হতে পারে, যা ছাত্রের সক্রিয় অবস্থা নির্ধারণ করবে।enrolled_on: DATETIME টাইপ, ছাত্রের ভর্তি হওয়ার সময়।
সারাংশ
MySQL-এ টেবিল তৈরি করার জন্য CREATE TABLE কমান্ড ব্যবহার করা হয় এবং টেবিলের বিভিন্ন কলামে ডেটা টাইপ নির্ধারণ করা হয়, যা সেই কলামে সংরক্ষিত ডেটার ধরণ এবং আকার নির্ধারণ করে। এখানে বিভিন্ন ধরনের ডেটা টাইপ যেমন, INT, VARCHAR, DATE, DECIMAL, TINYINT ইত্যাদি ব্যবহৃত হয়।
Read more